﻿//***********************************************************************
// Assembly         : IGolovkine.AoA.Core
// Author           : Ilia
// Created          : 06-11-2011
//
// Last Modified By : Ilia
// Last Modified On : 06-11-2011
// Description      : 
//
// Copyright        : (c) Microsoft. All rights reserved.
//***********************************************************************
using System;
using System.Reactive.Subjects;

namespace IGolovkine.AoA
{
    public class Channel<M> : IChannel<M> 
    {
        private readonly ISubject<M> _input;
        private readonly ISubject<M> _output;

        public Channel(ISubject<M> input, ISubject<M> output)
        {
            _input = input;
            _output = output;
        }

        public IObservable<M> Output
        {
            get { return _output; }
        }

        public IObserver<M> Input
        {
            get { return _input; }
        }
    }
}  
